草庐IT

leetcode 2744

全部标签

LeetCode - 三数之和

题目信息源地址:三数之和给你一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c,使得a+b+c=0,请你找出所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。提示信息示例1输入:nums=[-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例2输入:nums=[]输出:[]示例3输入:nums=[0]输出:[]限制0-105实现逻辑暴力枚举最先想到的应该是暴力枚举的方法,当然这也是最简单的的方法。既然这里要找出符合要求的三个数,当然是使用三层循环依次去匹配,缺点就是时间复杂度达到了\(O(n^3)\),当数组长度特别长的时候,程序

LeetCode - 三数之和

题目信息源地址:三数之和给你一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c,使得a+b+c=0,请你找出所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。提示信息示例1输入:nums=[-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例2输入:nums=[]输出:[]示例3输入:nums=[0]输出:[]限制0-105实现逻辑暴力枚举最先想到的应该是暴力枚举的方法,当然这也是最简单的的方法。既然这里要找出符合要求的三个数,当然是使用三层循环依次去匹配,缺点就是时间复杂度达到了\(O(n^3)\),当数组长度特别长的时候,程序

LeetCode 593. 有效的正方形(向量做法)

题目题目链接:593.有效的正方形题意:给出二维平面上四个点的坐标,判断这四个点是否能构成一个正方形,四个点的输入顺序不做任何保证。思路通过向量运算可以很轻松地解决这道题。任取一点向其他三点连线,可以得到三个向量。我们将这三个向量按照其长度从小到大排序,分别称为\(\boldsymbol{v}_0,\boldsymbol{v}_1,\boldsymbol{v}_2\),若满足以下三个条件,则\(\boldsymbol{v}_0,\boldsymbol{v}_1,\boldsymbol{v}_2\)可以“张出”一个正方形(见下图):\(\boldsymbol{v}_0+\boldsymbol{v

LeetCode 593. 有效的正方形(向量做法)

题目题目链接:593.有效的正方形题意:给出二维平面上四个点的坐标,判断这四个点是否能构成一个正方形,四个点的输入顺序不做任何保证。思路通过向量运算可以很轻松地解决这道题。任取一点向其他三点连线,可以得到三个向量。我们将这三个向量按照其长度从小到大排序,分别称为\(\boldsymbol{v}_0,\boldsymbol{v}_1,\boldsymbol{v}_2\),若满足以下三个条件,则\(\boldsymbol{v}_0,\boldsymbol{v}_1,\boldsymbol{v}_2\)可以“张出”一个正方形(见下图):\(\boldsymbol{v}_0+\boldsymbol{v

leetcode 450. Delete Node in a BST 删除二叉搜索树中的节点 (中等)

一、题目大意给定一个二叉搜索树的根节点root和一个值key,删除二叉搜索树中的key对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。示例1:输入:root=[5,3,6,2,4,null,7],key=3输出:[5,4,6,2,null,null,7]解释:给定需要删除的节点值是3,所以我们首先找到3这个节点,然后删除它。一个正确的答案是[5,4,6,2,null,null,7],如下图所示。另一个正确答案是[5,2,6,null,4,null,7]。示例2:输入:root=[

leetcode 450. Delete Node in a BST 删除二叉搜索树中的节点 (中等)

一、题目大意给定一个二叉搜索树的根节点root和一个值key,删除二叉搜索树中的key对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。示例1:输入:root=[5,3,6,2,4,null,7],key=3输出:[5,4,6,2,null,null,7]解释:给定需要删除的节点值是3,所以我们首先找到3这个节点,然后删除它。一个正确的答案是[5,4,6,2,null,null,7],如下图所示。另一个正确答案是[5,2,6,null,4,null,7]。示例2:输入:root=[

【Leetcode940】不同的子序列 II

1.题目给定一个字符串 s,计算 s 的 不同非空子序列 的个数。因为结果可能很大,所以返回答案需要对 10^9+7 取余 。字符串的 子序列 是经由原字符串删除一些(也可能不删除)字符但不改变剩余字符相对位置的一个新字符串。例如,"ace" 是 "abcde" 的一个子序列,但 "aec" 不是。示例1:输入:s="abc"输出:7解释:7个不同的子序列分别是"a","b","c","ab","ac","bc",以及"abc"。示例2:输入:s="aba"输出:6解释:6个不同的子序列分别是"a","b","ab","ba","aa"以及"aba"。示例3:输入:s="aaa"输出:3解释:

【Leetcode940】不同的子序列 II

1.题目给定一个字符串 s,计算 s 的 不同非空子序列 的个数。因为结果可能很大,所以返回答案需要对 10^9+7 取余 。字符串的 子序列 是经由原字符串删除一些(也可能不删除)字符但不改变剩余字符相对位置的一个新字符串。例如,"ace" 是 "abcde" 的一个子序列,但 "aec" 不是。示例1:输入:s="abc"输出:7解释:7个不同的子序列分别是"a","b","c","ab","ac","bc",以及"abc"。示例2:输入:s="aba"输出:6解释:6个不同的子序列分别是"a","b","ab","ba","aa"以及"aba"。示例3:输入:s="aaa"输出:3解释:

leetcode 287. Find the Duplicate Number 寻找重复数 (中等)

一、题目大意给定一个包含n+1个整数的数组nums,其数字都在[1,n]范围内(包括1和n),可知至少存在一个重复的整数。假设nums只有一个重复的整数,返回这个重复的数。你设计的解决方案必须不修改数组nums且只用常量级O(1)的额外空间。示例1:输入:nums=[1,3,4,2,2]输出:2示例2:输入:nums=[3,1,3,4,2]输出:3提示:1nums.length==n+11nums中只有一个整数出现两次或多次,其余整数均只出现一次进阶:如何证明nums中至少存在一个重复的数字?你可以设计一个线性级时间复杂度O(n)的解决方案吗?来源:力扣(LeetCode)链接:https:/

leetcode 191. Number of 1 Bits 位1的个数(简单)

一、题目大意编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为'1'的个数(也被称为汉明重量)。提示:请注意,在某些语言(如Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在Java中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的示例3中,输入表示有符号整数-3。示例1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串00000000000000000000000000